package org.hxyjs.service.impl;

import org.hxyjs.dao.ChefDao;

import org.hxyjs.dto.DTO;
import org.hxyjs.dto.MessageEnum;
import org.hxyjs.entity.Chef;
import org.hxyjs.page.PageInfo;
import org.hxyjs.service.ChefService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;

@Service("ChefService")
public class ChefServiceImpl implements ChefService {
    @Resource
    ChefDao chefDao;
    @Override
    public DTO<Chef> getAllChefs()  throws Exception{
        List<Chef> chefs = chefDao.getAllChefs();
        //isPresent表示判断不为空成立则dto为？与：之间的对象
        MessageEnum messageEnum  = Optional.ofNullable(chefs).isPresent()?MessageEnum.GETADMINSUCCESS:MessageEnum.GETADMINFAIL;
        return new DTO<Chef>(messageEnum.getCode(),messageEnum.getMessage(),chefs);
    }
    @Override
    public DTO<Chef> getChefByCno(String cno)  throws Exception{
        Chef chef = chefDao.getChefByCno(cno);
        //isPresent表示判断不为空成立则dto为？与：之间的对象
        MessageEnum messageEnum  = Optional.ofNullable(cno).isPresent()?MessageEnum.GETADMINSUCCESS:MessageEnum.GETADMINFAIL;
        return new DTO<Chef>(messageEnum.getCode(),messageEnum.getMessage(),chef);
    }

    @Override
    public DTO<Chef> deleteChef(String cno)  throws Exception{
        Integer result = chefDao.deleteChef(cno);
        //isPresent表示判断不为空成立则dto为？与：之间的对象
        MessageEnum messageEnum  =result> 0?MessageEnum.DELETEADMINSUCCESS:MessageEnum.DELETEADMINFAIL;
        return new DTO<Chef>(messageEnum.getCode(),messageEnum.getMessage());
    }

    @Override
    public DTO<Chef> updateChef(Chef chef) throws Exception {
        Integer result = chefDao.updateChef(chef);
        //isPresent表示判断不为空成立则dto为？与：之间的对象
        MessageEnum messageEnum  =result> 0?MessageEnum.UPDATEADMINSUCCESS:MessageEnum.UPDATEADMINFAIL;
        return new DTO<Chef>(messageEnum.getCode(),messageEnum.getMessage());
    }

    @Override
    public DTO<Chef> addChef(Chef chef) throws Exception {
        Integer result = chefDao.addChef(chef);
        //isPresent表示判断不为空成立则dto为？与：之间的对象
        MessageEnum messageEnum  =result> 0?MessageEnum.ADDADMINSUCCESS:MessageEnum.ADDADMINFAIL;
        return new DTO<Chef>(messageEnum.getCode(),messageEnum.getMessage());
    }

    @Override
    public DTO<Chef> getChefsByPage(PageInfo pageInfo) throws Exception {
        List<Chef> chefs = chefDao.getChefsByPage(pageInfo);
        //isPresent表示判断不为空成立则dto为？与：之间的对象
        MessageEnum messageEnum  =Optional.ofNullable(chefs).isPresent()?MessageEnum.GETADMINSUCCESS:MessageEnum.GETADMINFAIL;
        return new DTO<Chef>(messageEnum.getCode(),messageEnum.getMessage(),chefs,pageInfo);
    }

    public DTO<Chef> selectChefWithorderAndUser(String cno) throws Exception {
        Chef chef = chefDao.selectChefWithorderAndUser(cno);
        //isPresent表示判断不为空成立则dto为？与：之间的对象
        MessageEnum messageEnum  = Optional.ofNullable(cno).isPresent()?MessageEnum.GETADMINSUCCESS:MessageEnum.GETADMINFAIL;
        return new DTO<Chef>(messageEnum.getCode(),messageEnum.getMessage(),chef);
    }

}
